package Day17.FileAndRecursion.Demo01.File;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Demo06File
 * @date 2022年08月28日 18:53
 * @Description: TODO (一句话描述以下该类的功能)
 */

import java.io.File;

/**
 *- public string[] list():返回一个String数组，表示该File目录中的所有子文件或目录。
 * - public File[ ] listFiles():返回一个File数组，表示该File目录中的所有的子文件或目录。
 *
 * 注意：
 *      list方法和listFiles方法遍历的是构造方法中给出的目录
 *      如果构造方法中给出的目录的路径不存在，会做出空指针异常
 *      如果构造方法中给出的路径不是一个目录，也会做出空指针异常
 */

public class Demo06File {
    public static void main(String[] args) {
//        show01();
        show02();
    }



    /**
 * public string[] list():返回一个String数组，表示该File目录中的所有子文件或目录。
 * 遍历构造方法中给出的目录，会获取目录中的所有文件/文件夹的名称，把获取到的多个名称存储到一个String类型的数组里面
 *
 */

    private static void show01() {
        File f1 = new File("D:\\java黑马\\src\\Day17\\FileAndRecursion\\Demo01\\File");
        String[] list1 = f1.list();
        for (String listName : list1) {
            System.out.println("listName："+listName);
        }
        //文件的情况，路径错误同理
        File f2 = new File("D:\\java黑马\\src\\Day17\\FileAndRecursion\\Demo01\\File\\a.txt");
        String[] list2 = f2.list();
        for (String listName : list2) {
            System.out.println("listName："+listName);
        }//java.lang.NullPointerException:空指针异常

    }

    /**
     * public File[ ] listFiles():返回一个File数组，表示该File目录中的所有的子文件或目录。
     * 遍历构造方法中给出的目录,会获取目录中所有的文件/文件夹，把文件/文件夹封装为File对象,多个File对象存储到File数组中
     */
    private static void show02() {
        File f1 = new File("D:\\java黑马\\src\\Day17\\FileAndRecursion\\Demo01\\File");
        File[] files = f1.listFiles();
        for (File file : files) {
            System.out.println(file);
        }

    }
}
